package com.xx.jicheng.entity;

import java.io.Serializable;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

@SuppressWarnings("serial")
public class Cart implements Serializable {
	
	private Map<Integer,Item> items = new LinkedHashMap<>();
	
	/**
	 * 更新购物车：如果商品还没有，新增；如果已经有了，更新数量；如果数量更新为小于等于0的值，从购物车移除
	 * @param productId
	 * @param name
	 * @param price
	 * @param amount
	 * @param image
	 */
	public void update(int productId, String name, double price, int amount, String image){
		Item i = items.get(productId);
		if(i != null) {
			int newAmount = i.getAmount()+amount;
			if(newAmount<=0) {
				items.remove(productId);
			} else {
				i.setAmount(newAmount);
			}			
		} else {
			i = new Item();
			i.setProductId(productId);
			i.setName(name);
			i.setPrice(price);
			i.setAmount(amount);
			i.setImage(image);
			items.put(productId, i);
		}
	}
	
	/**
	 * 删除购物车商品
	 * @param productId
	 */
	public void remove(int productId) {
		items.remove(productId);
	}
	
	/**
	 * 清空购物车
	 */
	public void clear() {
		items.clear();
	}
	
	/**
	 * 获取购物车中所有商品
	 * @return
	 */
	public Collection<Item> getAll(){
		return items.values();
	}

}
